// Copyright David Abrahams and Aleksey Gurtovoy 2004.
// Distributed under the Boost Software License, Version 1.0. 
// (See accompanying file LICENSE_1_0.txt or copy at 
// http://www.boost.org/LICENSE_1_0.txt)

#if defined(__MWERKS__)
#   pragma template_depth(2000)
#endif

#if !defined(N)
#   error "N is not defined!"
#endif

template <class H, class T> struct node { enum { value = 0 }; };

#if 0

#elif N <= 0
#ifndef DIFF
template< class T > struct test { enum { value = T::value }; };
#else
template< class T > struct test { typedef T t; enum { value = 0 }; };
#endif

#elif N <= 10
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 20
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 30
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 40
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 50
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 60
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 70
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 80
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 90
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 100
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 110
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 120
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 130
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 140
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 150
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 160
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 170
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 180
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 190
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 200
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 210
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 220
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 230
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 240
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 250
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 260
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 270
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 280
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 290
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 300
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 310
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 320
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 330
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 340
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 350
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 360
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 370
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 380
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 390
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 400
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 410
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 420
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 430
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 440
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 450
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 460
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 470
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 480
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#elif N <= 490
#ifndef DIFF
template< class T > struct test { enum { value = node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >::value }; };
#else
template< class T > struct test { typedef node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, node<T, T > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t; enum { value = 0 }; };
#endif

#endif

template< int> struct int_ { enum { value = 0 }; };

int main()
{
    return 
          test< int_<0> >::value 
        + test< int_<1> >::value
        + test< int_<2> >::value
        + test< int_<3> >::value
        + test< int_<4> >::value
        + test< int_<5> >::value
        + test< int_<6> >::value
        + test< int_<7> >::value
        + test< int_<8> >::value
        + test< int_<9> >::value
        ;
}
